package org.example;

import java.net.URL;

//import org.opencv.core.Core;
//import org.opencv.core.Mat;
//import org.opencv.core.Point;
//import org.opencv.core.Scalar;
//import org.opencv.highgui.HighGui;
//import org.opencv.imgcodecs.Imgcodecs;
//import org.opencv.imgproc.Imgproc;
//
//public class TestPicFind {
//    /**
//     * https://blog.csdn.net/weixin_49456098/article/details/124597750
//     */
//    public static void loadDll() {
//        // 解决awt报错问题
//        System.setProperty("java.awt.headless", "false");
//        System.out.println(System.getProperty("java.library.path"));
//        // 加载动态库
//        URL url = ClassLoader.getSystemResource("dlls/opencv_java4100.dll");
//        System.load(url.getPath());
//    }
//    public static void main(String[] args) {
//        String sourceImg = "E:/abc/source.png";
//        //String sourceImg = "E:/abc/20240915145837.jpg";
//        //String sourceImg = "C:/Users/wangqx/Desktop/abc/20240915145837.jpg";
//        String targetImg = "E:/abc/target.png";
//        //String targetImg = "E:/abc/20240915145856.png";
//        //String targetImg = "C:/Users/wangqx/Desktop/abc/20240915145856.png";
//        new TestPicFind().testMatching(sourceImg, targetImg);
//    }
//
//    public void testMatching(String sourceImg,String targetImg) {
//
//        // 1.导入Opencv库
//        //OpenCV.loadShared();
//        loadDll();
//        // 2.加载图像
//        Mat src = Imgcodecs.imread(sourceImg);// 待匹配图片
//        Mat template = Imgcodecs.imread(targetImg);// 获取匹配模板
//
//        // 3.进行模板匹配
//        // 创建一个输出图像
//        Mat outputImage = new Mat(src.rows(), src.cols(), src.type());
//        Imgproc.matchTemplate(src, template, outputImage, Imgproc.TM_CCOEFF_NORMED);
//
//        // 4.获取匹配结果,查找最大匹配值
//        Core.MinMaxLocResult result = Core.minMaxLoc(outputImage);
//        Point matchLoc = result.maxLoc;
//        double similarity = result.maxVal; //匹配度
//        int x = (int) matchLoc.x; //小图大大图中的x坐标
//        int y = (int) matchLoc.y; //小图大大图中的y坐标
//        System.out.println(x + "," + y + " similarity: " + similarity);
//        //将查找到的结果标上框框
//        Imgproc.rectangle(src,new Point(x,y),new Point(x+template.cols(),y+template.rows()),
//                new Scalar( 0, 0, 255),2);
//        HighGui.resizeWindow("模板匹配",src.width()/100,src.height()/100);
//        //HighGui.namedWindow("模板匹配", HighGui.WINDOW_NORMAL);
//        //5.显示结果
//        HighGui.imshow("模板匹配", src);
//        HighGui.waitKey();
//
//    }
//}
